Neural Networks for Machine Learning Lecture1笔记

作者 ethanw 日期 2017-05-17
Neural Networks for Machine Learning Lecture1笔记

Lecture 1: Introduction

写在前面

最近开始在Coursera上面学习Geoffrey Hinton教授的Nerual Networks for Machine Learning。计划在每周的学习结束后,加以整理和补充,写一篇周总结。这周是以第一周。

正文

这一节课主要是介绍。

首先介绍课程的结构。一共是16周的课程。
作业方面。课程使用Octave、matlab来提交作业,这一点和andrew NG的机器学习课是一样的。
成绩。final test(25%)+programming assignments(30%)+weekly quizzes(45%),可以看出更注重平常的训练。

为什么我们需要机器学习?

首先,什么是机器学习。

两个传统编程无法解决的问题:

  • 在一个杂乱的场景中,去识别一个三维图像。我们不知道人脑是怎么工作的,因此我们很难编程。即使可以编程,也会很复杂。
  • 计算信用卡交易出错的可能性。

机器学习是怎么解决这些问题的?

机器学习通过收集大量的具有“标签”(其实这是监督学习)的例子,然后训练出一个模型。对于新进入的数据,用模型判断它的标签。

现在,计算资源越来越便宜,因此,机器学习是解决这些问题的好方法。

一些问题用学习的方法能很好的解决

  • 识别模式
  • 异常识别
  • 预测

机器学习的标准例子

  • 果蝇基因序列学习
  • MNIST手写数据识别

这里使用MNIST手写数据识别例子。
数据集:MNIST(手写数字识别,规模小);ImageNet(1000中不同物体识别,130万张高清图片)。

语音识别任务。

pre-processing预处理(将声波转换为声学系数的向量);the acoustic model声学模型(使用邻近的几个声学向量预测音节phoneme的可能性);decoding解码(找到最适合声学数据的音节序列)DNN正在代替原来的机器学习算法用于构建声学模型,显著降低了错误率。

Hinton在2012年使用8层神经网络使得错误率下降到了20.7%。

什么是神经网络?

研究神经计算的原因:

  • 理解神经的实际的工作方式。
  • 理解神经元并行计算、自适应连接的方式。神经元在处理视觉方面具有优势,在数字计算上不擅长。
  • 基于神经元结构提出算法,解决实际问题。比如计算机视觉。

典型的皮质神经元结构:

整体结构(轴突产生分支发送信号给其他神经元,树突接收其他神经元的信号);一个神经元的轴突与另一个神经元的树突进行通信的结构叫做突触,轴突产生刺激使得组织液中的电荷进入到后突触;当足够的电荷流入突触使得细胞膜去极化,这个神经元的轴突上的一些小山丘状结构产生刺激。

  • 突触:当轴突产生刺激,到达突触会释放携带化学物质的小泡,有不同的化学物质(积极和消极),化学物质扩散过突触间隙,和接收神经元上的后突触膜的接收分子结合,导致膜发生形变,打开允许特定离子通过的通道,从而使得极性发生变化。
  • 突触通过改变化学物质囊泡的个数和接收分子的个数进行有效调节,他们很小和低耗能,使用局部信号进行调节。
  • 模块化:大脑皮层不同的部分做不同的事情,损坏成年人的局部大脑会对其产生特定影响,但是大脑皮层整体看上去又是相似的,如果损坏幼儿的一部分大脑,他的其余部分可能就会分担这部分大脑的工作。

一些简单的神经元模型

理想化的神经元为了简化模型,移去类复杂的具体信息。这样也可以方便进行数学计算。一旦理解了基本的思想,就容易增加复杂的部分使得模型更加可信。

线性神经元

二值阈值神经元


修正线性神经元(线性阈值神经元)

sigmoid神经元

sigmoid函数是一类类似S形的函数。可以讲变量映射到0和1之间。

一个简单的学习例子

Hinton在这里举了手写数字识别的例子。

这里用两层神经元来识别数字,输入层为每一个像素点,输出层为10个类别。

但是两层的神经元并不有效。
层数太少,最后选出的类别相当于含有最多覆盖该字符的那个数字。

机器学习的三种形式

  • 监督学习
  • 增强学习
  • 非监督学习
监督学习

监督学习即是有标签的学习。利用一组已知标签的数据训练模型,利用这个模型判断新的数据的标签。

监督学习分为回归分析和分类,回归的标签是连续的,分类的标签是离散的。

监督学习通常需要设定一个目标函数,学习的过程即是调整参数使得目标值和真实值更加接近的过程。

增强学习

这个概念在课上没听懂。网上找了一下概念:增强学习关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积回报。

通过增强学习,一个智能体应该知道在什么状态下应该采取什么行为。RL是从环境状态到动作的映射的学习,我们把这个映射称为策略。

有一个例子: flappy bird 是现在很流行的一款小游戏,不了解的同学可以点链接进去玩一会儿。现在我们让小鸟自行进行游戏,但是我们却没有小鸟的动力学模型,也不打算了解它的动力学。要怎么做呢? 这时就可以给它设计一个增强学习算法,然后让小鸟不断的进行游戏,如果小鸟撞到柱子了,那就获得-1的回报,否则获得0回报。通过这样的若干次训练,我们最终可以得到一只飞行技能高超的小鸟,它知道在什么情况下采取什么动作来躲避柱子。

视频地址:https://www.youtube.com/watch?v=THhUXIhjkCM

代码地址:https://github.com/yenchenlin/DeepLearningFlappyBird

增强学习和监督学习的区别有两点:

  • 增强学习是试错学习(Trail-and-error),由于没有直接的指导信息,智能体要以不断与环境进行交互,通过试错的方式来获得最佳策略。
  • 延迟回报,增强学习的指导信息很少,而且往往是在事后(最后一个状态)才给出的,这就导致了一个问题,就是获得正回报或者负回报以后,如何将回报分配给前面的状态。

增强学习的典型例子有:马尔科夫决策。

非监督学习

一些非监督学习的目标:

  • 发现输入的好的本质的表示形式。
  • 提供压缩低维的特征表示(PCA线性压缩)。
  • 提供输入的经济的高维表示(如Binary features,或接近于0的real-valued features)。
  • 输入的聚类。

感想

不得不说,Hinton上课有一些口音,上课的重点也没有andrew NG清晰…